package com.flappySeeker.controller;

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;

/**
 * HO11AND相关常量
 * @author gdl
 *	规则取得分多的前几位
 */
public class HOLLAND {
	
	public final static String TEST_SUFF="test";//题目前缀
	public final static int HOLLAND_TOP=3;//HOLLAND取前多少位
	
	public final static String R="R";//实际型
	public final static String I="I";//调研型
	public final static String A="A";//艺术型
	public final static String S="S";//社会型
	public final static String E="E";//企业型
	public final static String C="C";//常规型
	public final static String[] HOLLAND_SORT=new String[]{R,I,A,S,E,C};//进行排序
	
	public final static int R_S=0;//实际型
	public final static int I_S=1;//调研型
	public final static int A_S=2;//艺术型
	public final static int S_S=3;//社会型
	public final static int E_S=4;//企业型
	public final static int C_S=5;//常规型
	
 	public final static String TOTAL_R="total_r";//实际型
	public final static String TOTAL_I="total_i";//调研型
	public final static String TOTAL_A="total_a";//艺术型
	public final static String TOTAL_S="total_s";//社会型
	public final static String TOTAL_E="total_e";//企业型
	public final static String TOTAL_C="total_c";//常规型
	
	private static Map<String, String> HOLLAND_CONTENT=null;//内容
	private static Map<String, String> HOLLAND_MBTI=null;//中文
	/**
	 * 获得中文类型map
	 * @return
	 */
	public static Map<String, String> getHollandMap(){
		if(HOLLAND_MBTI==null){
			HOLLAND_MBTI=new HashMap<String, String>();
			HOLLAND_MBTI.put(R,"实际型");
			HOLLAND_MBTI.put(I,"调研型");
			HOLLAND_MBTI.put(A,"艺术型");
			HOLLAND_MBTI.put(S,"社会型");
			HOLLAND_MBTI.put(E,"企业型");
			HOLLAND_MBTI.put(C,"常规型");
		}
		return HOLLAND_MBTI;
	}
	
	/**
	 * 获得MBTI描述
	 * @return
	 */
	public static Map<String, String> getHollandConten(){
		if(HOLLAND_CONTENT==null){
			HOLLAND_CONTENT=new HashMap<String, String>();
			String s = Constants.class.getClassLoader().getResource("/com/flappySeeker/template/holland/").toString();
			File file = new File(s.substring(s.indexOf("/")));
			File[] files=file.listFiles();
			for (File f : files) {
				String fname =f.getName();
				try {
					HOLLAND_CONTENT.put(StringUtils.substring(fname,0,fname.indexOf(".")), 
							FileUtils.readFileToString(f, Constants.ENCODING_UTF8));
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		return HOLLAND_CONTENT;
	}
}
